User interface widget for selecting a point or range

ABSTRACT

A technique for selecting and/or displaying an exact point or a range is provided wherein a slider widget comprising a thumb with a left edge and a right edge lying in proximity to the left and right edges of the thumb is provided such that a user may utilize the widget to display an exact point or a range.

FIELD OF THE INVENTION

The present invention relates to user interface elements, and morespecifically, to a user interface technique for selecting a point orrange.

BACKGROUND

One of the primary benefits of a Graphical User Interface (GUI) is theuse of visual tools, or widgets, to select items such as applications,documents, folders and the like, as well as discrete points within suchitems. One such widget commonly used today is a “slider.” As shown inFIG. 1, a slider 102 usually consists of two parts: a finite “track,”104 which is usually a horizontal or vertical area defining the fullrange of potential selections to which the track refers. The other partof a slider is the “thumb,” 106 which may take on different forms, butits main purpose is to select a single point on the finite track 104. Aslider 102 allows a user to position the thumb 106 at any point alongthe track 104 such as to represent a relative point or amount in anapplication or file.

By using a slider as a GUI widget, certain actions may be taken. In onecase, a video file may use a slider to allow the user to select aspecific point in the video. In this case, the track would represent theentire running time of the video, and the thumb would be placed on thetrack in the approximate position where the desired selection lies. Forexample, the video may be ten minutes long. Usually, the length of thetrack does not change based on the length of the video, but the scale ofthe track changes. This means that a point one-tenth of the way from thebeginning of the track of a ten-minute video represents the pointexisting at the one-minute section of the video.

The same video, this time ten hours long, will have the same length asthe track for the ten-minute video, but a point one-tenth of the wayfrom the beginning of the track of a ten-hour video represents the pointexisting at the one-hour section of the video. Therefore, the sameunique point of a ten-minute track and a ten-hour track lie on the samepoint of the track, but represent different measures of time dependingon the actual length of the video to which the slider is attached. Inmany cases, resizing the window containing the slider widget and thefile to which it refers will change the physical size of the track, butthe relative positions as described above remain the same. A drawback tothe above approach is the lack of capability to select a range withinthe file or other element to which the slider refers. For example, theabove approach does not provide a way to select a one-minute longportion of the entire video.

There exist techniques which use a slider widget to both select a pointon a track and select a range on the same track. One such technique isillustrated in FIG. 2. The slider 202 in this example is used with avideo file, although it may be applied to other types of files. One waythis slider may be used is to select a point in the video, as abovedescribed. The track 206 again represents the entire running time of thevideo. The thumb 208 again represents a single point on the finite track206. In this example, the placement of the thumb 208 represents thesix-second mark of the video.

FIG. 2 also illustrates the same slider widget 204 used to select apoint in the video and a finite range within the entire video. The thumb210 again represents a single point on the finite track 212. In thisexample, however, there exist elements to select a range within thetrack 212. The range boundary indicators 214 serve to define a specificrange of time within the entire video. In this example, the placement ofthe thumb 210 represents the forty-three second mark of the video, andthe thumb lies within the section of the video defined by the rangeboundary indicators 214.

A drawback to the above approach is lack of the capability to slide theentire range as defined by the range boundary indicators 214. If a userdecides to change the range of the selection, for example to increase ordecrease the selected range or simply move the same “length” of therange to a different portion of the video, each range boundary indicator214 must be moved separately. This is an inefficient use of a GUIwidget, as a purpose of the widget is to reduce the amount of workrequired to accomplish the given task. Another drawback is that thethumb 210 must be moved in order to set the range. It is often notpossible to select a range that does not include the thumb 210.Therefore, either the range is selected around the current thumbposition or the thumb is moved to a point within the to-be-selectedrange. Again, this is an inefficient use of a GUI widget and only servesto increase the amount of work for a user.

While the prior approaches may occasionally serve the limited purpose ofselecting a single point or a range, there exists a need for a techniquethat allows the selection of a point or range that does not suffer fromthe above-described shortcomings.

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1 is a block diagram illustrating one example of a slider;

FIG. 2 is a block diagram illustrating one example of a slider;

FIG. 3 is a block diagram illustrating an embodiment of the invention;

FIG. 4 is a block diagram illustrating an embodiment of the invention;

FIG. 5 is a block diagram illustrating an embodiment of the invention;

FIG. 6 is a block diagram illustrating an embodiment of the invention;

FIG. 7 is a block diagram illustrating an embodiment of the invention;

FIG. 8 is a block diagram illustrating an embodiment of the invention;

FIG. 9 is a block diagram illustrating an embodiment of the invention;and

FIG. 10 is a block diagram of a computer system on which embodiments ofthe invention may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

Overview

According to techniques described herein, a slider widget is providedsuch that a user may utilize the widget to display an exact point or arange. While previous slider widgets have allowed a user to position thethumb, or control, at any point along a track such as to represent arelative point or amount in an application, file, or the like, thetechniques described herein provide additional capability of, amongother things, allowing a user to define a selected range on the track aswell as a point.

The slider widget serves as a simple way to specify and/or move either(1) an exact point or (2) an entire range and a point within the range.The slider widget is compact, taking up a minimal amount of valuablescreen space and having the capabilities of multiple types of sliderscontained within one GUI element. The slider widget allows selection ofa range without changing the current selection point represented by athumb. The thumb operates as a “selection point.” By combining theposition and selection tools, the slider widget saves the user time (inmouse movement) and provides additional capabilities not currentlyavailable, such as maintaining a constant frame of focus regardless ofposition.

By combining the position and range selection tools, the slider widgetdescribed herein saves a user time (in mouse movement, for example) andprovides additional capabilities, with one such capability beingmaintaining a constant frame of focus regardless of position. Otherbenefits and capabilities are envisioned.

According to one embodiment, the slider widget described hereincomprises a thumb, a left edge and a right edge. The left and rightedges are initially located in proximity to the left and right sides ofthe thumb, respectively. The left edge defines a range start point andthe right edge defines a range end point. In one embodiment, the thumbis always at the center of the range defined by the left and rightedges. When the left and right edges are immediately adjacent to thethumb, the slider acts as a point selection tool that defines a pointwithin the entire range of the track.

According to one embodiment, the slider widget supports a “fixed thumb”mode of operation and a “fixed edge” mode of operation. In the fixededge mode of operation, one edge (the “fixed edge”) remains at the thumblocation while the other edge is moved away from the thumb. When themoved edge is released, the fixed edge remains in place while the thumbautomatically moves to center of the range defined by the fixed edge andthe moved edge. Thus, the fixed edge mode allows a user to define arange from the initial thumb location.

In fixed thumb mode, moving one edge away from the thumb automaticallycauses the other edge to move away from the thumb, thereby keeping thethumb in the center of the range defined by the edges. Thus, the fixedthumb node allows users to define a range “around” the thumb. Modifierinputs may be used to choose between modes.

According to one embodiment, the slider begins as a point selector alonga track. A user may click on the thumb of the slider and drag the thumbto another position on the track to select a point. In fixed edge mode,an edge that is not moved remains fixed at that point. In fixed thumbmode, the edge that is not moved by the user is automatically moved awayform the thumb, which remains fixed. In either mode, a range selectionis defined upon the release of the moved edge, where the endpoints ofthe range correspond to the location of the two edges.

A user may then select another, separate range of equal size along thetrack by clicking on the thumb of the slider and dragging the thumb toanother position on the track. While the thumb is moved, the left andright edges also move such that their distance from the thumb does notchange. Upon releasing the thumb, the new range is set by the newpositions of the edges. According to one embodiment, to quickly returnto selecting a discrete point, a user may click on the thumb of theslider and release without dragging. The edges will then contract to aposition adjacent to the thumb indicating the change in operation. Otherembodiments envision the use of visual aids such as tooltips to assist auser in accurately positioning the slider.

GUI Widget Enabling Selection of a Point or Range

FIG. 3 illustrates an embodiment of the invention. The slider 302illustrated therein consists of a central thumb 304 and two edges 306,308. The thumb 304 sets the position of the thumb 304, or control, alongthe track and the edges 306, 308 define the endpoints of a selectedrange. According to one embodiment, the edges 306, 308 stay attached toeither side of the thumb 304 when the thumb is used to define a point.

Selecting a Range Using Fixed Edge Mode

FIG. 4 illustrates an embodiment of the invention wherein the slider 402is used in fixed edge mode to define a range “from” a selection point.To begin, the thumb 404 is positioned at a discrete location on thetrack 406, serving to define a point. This is shown by the edges 408,410 staying attached to either side of the thumb 404, according to oneembodiment.

According to one embodiment, a user desiring to define a range from thethumb may accomplish this task through the following steps. In step one,the user positions a pointer 412, manipulated by a mouse or similarinput device, over either edge of the control. In the illustratedembodiment, the pointer 412 is positioned over the right edge 410 of thecontrol. In step two, the user selects the right edge 410 of the controlby clicking a mouse button or providing similar input. According to oneembodiment, visual or other feedback may be given upon clicking on theright edge 410, such as changing the appearance of the right edge 410.Clicking the right edge 410 of the control operates to ready the rightedge 410 for repositioning and ultimately defining a selected range.

In step three, the user drags the right edge 410 along the track 406 tothe right in order to define the right endpoint of the selected range.The left endpoint is defined by the initial position of the thumb 404.According to one embodiment, visual or other feedback may be given whiledragging to indicate that a range is being defined, such as highlightingthe range or edge. In step four, the user releases the mouse button orsimilar input control, which operates to “set” the rightmost point ofthe range. According to one embodiment, visual or other feedback may begiven upon releasing the right edge 410, such as blinking the range.Upon release of the right edge, the left edge 408 stays fixed and thethumb 404 moves to a point that is at equal distance between the leftedge 408 and the right edge 410. This operates to create an equidistantrange around the thumb 404. Alternatively, the thumb 404 moves away fromthe left edge 408 while the right edge is being moves, to continuouslymaintain the thumb 404 at the center of the selected range.

In the example described above, the right edge 410 was moved and theleft edge was the fixed edge. Similarly, if the user performs the abovesteps to move the left edge 408, the right edge 410 remains fixed.

Repositioning a Range while Maintaining the Size of the Range

According to a preferred embodiment, the thumb 404 remains at themidpoint of any selected range. This demonstrates to the user that thethumb 404 is the “handle” of the selection, rather than an independentmarker along either the track or selected range. Therefore, upondefining a range as described above, the user clicks on the thumb 404and by moving the thumb 404 to the right or left on the track, therebyallowing a defined selected range to be repositioned to represent thesame size selection or amount at different points on the track. Forexample, a user could use the above technique to select a rangerepresenting one minute on a video playback timeline and reposition itto select any other one-minute long range of content in a video.

According to another embodiment, the thumb 404 could be kept at themidpoint of the range or set at an arbitrary point within the range.

Selecting a Range in Fixed Thumb Mode

FIG. 5 illustrates an embodiment of the invention wherein the slider 502is used to define a range “around” a selection point. The steps areidentical to those described and illustrated in FIG. 4 with somedifferences; therefore, the above passage describing FIG. 4 will not berepeated verbatim, but instead only the differences will be explained.

According to an embodiment, the difference arises from a user's desireto select a full range around the thumb 504, or selection point. FIG. 4illustrates an embodiment wherein one edge of the range is selected, andupon releasing the selected edge, the full range comprising both edgesis selected and displayed. Therefore, one edge of the desired range isdefined first and the other edge is defined afterwards in response. Someusers may prefer a behavior where both edges of the range are defined atthe same time, which is what this embodiment enables. This mode orbehavior switching may be accomplished in a number of ways. According toone embodiment, a modifier key is pressed on a keyboard which signalsthat the mode has changed from the default behavior.

Referring to FIG. 5, in step one, the user positions a pointer 512,manipulated by a mouse or similar input device, over either edge of thecontrol. In the illustrated embodiment, the pointer 512 is positionedover the right edge 510 of the control. In step two, prior to selectingthe right edge 510 of the control by clicking a mouse button orproviding similar input, the user may switch the selection mode fromfixed-edge mode to fixed-thumb mode, and vice versa according to aparticular embodiment. For example, in step two, the user may press amodifier key or provide similar input prior to selecting the right edge510 of the control. According to one embodiment, visual or otherfeedback may be given upon clicking on the right edge 510, such aschanging the appearance of the right edge 510. In one embodiment,clicking the right edge 510 of the control after pressing a modifier keyoperates to ready both edges 508, 510 for repositioning and ultimatelydefining a selected range at the same time.

In step three, the user drags the right edge 510 to the right along thetrack 506 in order to define the entire selected range. In addition tothe right edge 510 moving along the track 506 to indicate the rangebeing selected, the left edge 508 moves along the track 506 to the leftin concert with the right edge 510. Therefore, the user is given avisual indication of the size of the entire range to be selected,instead of only one side of the range. According to one embodiment,visual or other feedback may be given while dragging to indicate that arange is being defined, such as highlighting the range or edge.

In step four, the user releases the mouse button or similar inputcontrol, which operates to “set” both edges of the range at pointsequidistant from the thumb. According to one embodiment, visual or otherfeedback may be given upon releasing the right edge 510, such asblinking the range. Similarly, if the user performs the above operationson the left edge 508, the right edge 510 will move to the right of thethumb 504 an equal distance as moved by the left edge 508. Because thisembodiment operates to move both edges at the same time, whether theuser first selects the left edge 508 or right edge 510 is of no moment.

According to another embodiment, the thumb 504 could be kept at themidpoint of the range or set at an arbitrary point within the range.

Using the Slider Widget to Browse Objects

According to one embodiment of the invention, the above techniques maybe used to control how much of a large document may be viewed at onetime, as well as how many files or objects to view at any one time, forexample, within a folder. FIG. 6 illustrates one embodiment of theinvention wherein the slider 602 is utilized in the context of browsingmultiple objects 604 within, for example, a window 606. By using theslider as the thumb of a scrollbar 608, a user may choose to view notjust one page 610 at a time, but any number of pages at a time byselecting a range of n pages.

According to this embodiment, the slider 602 is used within a scrollbarGUI element 608. Instead of a basic thumb being moved along thescrollbar track 608 to view however many objects are present on eachpage, a user may use the above techniques to first define how manyobjects 604 appear on each page 610, and then move the thumb 614 toscroll through the objects one page 610 at a time, the number of objects604 appearing on each page 610 having been defined by setting a range onthe slider 602 as described above.

For example, in a window of x size, the default number of objects 604appearing on each page 610 may be a set number y. By using the inventionas a “thumb” on a scrollbar 608, a user may define the range of objectsas being any number instead of the default number y. In the window 606illustrated in FIG. 6, the default number of objects 604 appearing onthe page 610 may be two. By using the above-described techniques todefine a range of the slider 602 being used within the scrollbar 608,the number of objects 604 is set at z instead of y. In FIG. 6, z equalssix. According to one embodiment, feedback regarding the exact number ofobjects 604 for the defined range is given, such as dynamically resizingthe number of objects 604 currently appearing in the window 606 tospecifically show how many objects 604 will be displayed.

Then, a user may select the thumb 614 of the slider object 602 beingused within a scrollbar 608 and drag along the track defined by thescrollbar background. This will scroll through z objects at a timeinstead of y.

Using the Slider Widget as a Box-and-Whisker Plot

FIG. 7 illustrates another embodiment of the invention wherein theslider may be used to approximate a “box-and-whisker” plot commonly usedin statistical analysis. In this embodiment, the thumb 702 of the slider704 may be positioned along a numerical scale 706, with the position ofthe thumb 702 representing the median of a sample. Then, the left edge708 and the right edge 710 may be positioned as described above torepresent, for example, the first and third quartile medians of thesample. According to one embodiment, two outer edges 712, 714 may beadded to the slider 704 and positioned as described above to represent,for example, the upper and lower quartile medians of the sample. Inother embodiments, the thumb 702 and any number of sets of edges 708-714may be used to represent different measurements of a sample.

Using the Slider Widget to Define Flexible Amounts

FIG. 8 illustrates another embodiment of the invention wherein theslider may be used to define amounts such that a flexible dimension isadded to a selection of current amounts. For example, one embodimentenvisions using the slider invention to define behaviors in investmentmanagement. If a user desired to set an automatic buy or sell price fora certain stock, the slider 802 could be used to define a “range ofownership criteria.” The thumb 804 of the slider could be positionedalong a scale of stock prices 806 at the exact point the user wished tobuy or sell the stock. By defining a range as described above, the leftedge 808 and right edge 810 may define a range within which to buy orsell the stock. In FIG. 8, the price at which the user wants to buy orsell the stock is set at approximately 62. In one embodiment, visual orother aids are displayed during the positioning of the thumb 804 andedges 808, 810 to give the exact number represented by the elements. Bysetting the edges 808, 810, a range of prices at which the user agreesto sell or buy the stock is defined. In FIG. 8, the user wishes to sellthe stock if the stock price reaches a ceiling of approximately 77, andwishes to buy the stock if the price reaches a floor of approximately47.

FIG. 9 illustrates another embodiment of the invention wherein theslider may be used to define amounts such that a flexible dimension isadded to a selection of current amounts. In this embodiment, the sliderinvention may be used to define inventory buffers in order to optimizeresource use and insure against unexpected manufacturing delays.

The thumb 904 of the slider could be positioned along a scale of dailyunit production 906 at the exact point the user wanted to set dailyproduction. By defining a range as described above, the left edge 908and right edge 910 may define a range within which the level ofproduction is acceptable and will not result in maintaining too much ortoo little inventory. In FIG. 9, the number of units of daily productionis set at approximately 6.6. In one embodiment, visual or other aids aredisplayed during the positioning of the thumb 904 and edges 908, 910 togive the exact number represented by the elements. By setting the edges908, 910, a range of acceptable unit production is defined. In FIG. 9,the user defines the lower bound of acceptable daily production atapproximately 4.6, and the upper bound of acceptable daily production atapproximately 8.3.

Feedback During Use of the Slider Widget

Another embodiment of the invention utilizes visual or other feedback toassist the user in positioning the slider accurately. One embodimentcomprises “tooltips,” or small windows appearing alongside the sliderwhich appear during operation to display the exact number or otherreference point along the scale at which the slider element is beingplaced.

Other Uses

The slider widget described herein may be applied to any typeapplication within which a point along a scale may be defined, and whereone or multiple ranges within the scale may be defined as well. Thepreceding descriptions of embodiments of the invention in the context ofGUI widgets should not be construed as a limitation on the invention.

Hardware Overview

FIG. 10 is a block diagram that illustrates a computer system 1000 uponwhich an embodiment of the invention may be implemented. Computer system1000 includes a bus 1002 or other communication mechanism forcommunicating information, and a processor 1004 coupled with bus 1002for processing information. Computer system 1000 also includes a mainmemory 1006, such as a random access memory (RAM) or other dynamicstorage device, coupled to bus 1002 for storing information andinstructions to be executed by processor 1004. Main memory 1006 also maybe used for storing temporary variables or other intermediateinformation during execution of instructions to be executed by processor1004. Computer system 1000 further includes a read only memory (ROM)1008 or other static storage device coupled to bus 1002 for storingstatic information and instructions for processor 1004. A storage device1010, such as a magnetic disk or optical disk, is provided and coupledto bus 1002 for storing information and instructions.

Computer system 1000 may be coupled via bus 1002 to a display 1012, suchas a cathode ray tube (CRT), for displaying information to a computeruser. An input device 1014, including alphanumeric and other keys, iscoupled to bus 1002 for communicating information and command selectionsto processor 1004. Another type of user input device is cursor control1016, such as a mouse, a trackball, or cursor direction keys forcommunicating direction information and command selections to processor1004 and for controlling cursor movement on display 1012. This inputdevice typically has two degrees of freedom in two axes, a first axis(e.g., x) and a second axis (e.g., y), that allows the device to specifypositions in a plane.

The invention is related to the use of computer system 1000 forimplementing the techniques described herein. According to oneembodiment of the invention, those techniques are performed by computersystem 1000 in response to processor 1004 executing one or moresequences of one or more instructions contained in main memory 1006.Such instructions may be read into main memory 1006 from anothermachine-readable medium, such as storage device 1010. Execution of thesequences of instructions contained in main memory 1006 causes processor1004 to perform the process steps described herein. In alternativeembodiments, hard-wired circuitry may be used in place of or incombination with software instructions to implement the invention. Thus,embodiments of the invention are not limited to any specific combinationof hardware circuitry and software.

The term “machine-readable medium” as used herein refers to any mediumthat participates in providing data that causes a machine to operationin a specific fashion. In an embodiment implemented using computersystem 1000, various machine-readable media are involved, for example,in providing instructions to processor 1004 for execution. Such a mediummay take many forms, including but not limited to, non-volatile media,volatile media, and transmission media. Non-volatile media includes, forexample, optical or magnetic disks, such as storage device 1010.Volatile media includes dynamic memory, such as main memory 1006.Transmission media includes coaxial cables, copper wire and fiberoptics, including the wires that comprise bus 1002. Transmission mediacan also take the form of acoustic or light waves, such as thosegenerated during radio-wave and infra-red data communications.

Common forms of machine-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, or any other magneticmedium, a CD-ROM, any other optical medium, punchcards, papertape, anyother physical medium with patterns of holes, a RAM, a PROM, and EPROM,a FLASH-EPROM, any other memory chip or cartridge, a carrier wave asdescribed hereinafter, or any other medium from which a computer canread.

Various forms of machine-readable media may be involved in carrying oneor more sequences of one or more instructions to processor 1004 forexecution. For example, the instructions may initially be carried on amagnetic disk of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 1000 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 1002. Bus 1002 carries the data tomain memory 1006, from which processor 1004 retrieves and executes theinstructions. The instructions received by main memory 1006 mayoptionally be stored on storage device 1010 either before or afterexecution by processor 1004.

Computer system 1000 also includes a communication interface 1018coupled to bus 1002. Communication interface 1018 provides a two-waydata communication coupling to a network link 1020 that is connected toa local network 1022. For example, communication interface 1018 may bean integrated services digital network (ISDN) card or a modem to providea data communication connection to a corresponding type of telephoneline. As another example, communication interface 1018 may be a localarea network (LAN) card to provide a data communication connection to acompatible LAN. Wireless links may also be implemented. In any suchimplementation, communication interface 1018 sends and receiveselectrical, electromagnetic or optical signals that carry digital datastreams representing various types of information.

Network link 1020 typically provides data communication through one ormore networks to other data devices. For example, network link 1020 mayprovide a connection through local network 1022 to a host computer 1024or to data equipment operated by an Internet Service Provider (ISP)1026. ISP 1026 in turn provides data communication services through theworld wide packet data communication network now commonly referred to asthe “Internet” 1028. Local network 1022 and Internet 1028 both useelectrical, electromagnetic or optical signals that carry digital datastreams. The signals through the various networks and the signals onnetwork link 1020 and through communication interface 1018, which carrythe digital data to and from computer system 1000, are exemplary formsof carrier waves transporting the information.

Computer system 1000 can send messages and receive data, includingprogram code, through the network(s), network link 1020 andcommunication interface 1018. In the Internet example, a server 1030might transmit a requested code for an application program throughInternet 1028, ISP 1026, local network 1022 and communication interface1018.

The received code may be executed by processor 1004 as it is received,and/or stored in storage device 1010, or other non-volatile storage forlater execution. In this manner, computer system 1000 may obtainapplication code in the form of a carrier wave.

Extensions and Alternatives

Alternative embodiments of the invention are described throughout theforegoing description, and in locations that best facilitateunderstanding the context of the embodiments. Furthermore, the inventionhas been described with reference to specific embodiments thereof. Itwill, however, be evident that various modifications and changes may bemade thereto without departing from the broader spirit and scope of theinvention. Therefore, the specification and drawings are, accordingly,to be regarded in an illustrative rather than a restrictive sense.

In addition, in this description certain process steps are set forth ina particular order, and alphabetic and alphanumeric labels may be usedto identify certain steps. Unless specifically stated in thedescription, embodiments of the invention are not necessarily limited toany particular order of carrying out such steps. In particular, thelabels are used merely for convenient identification of steps, and arenot intended to specify or require a particular order of carrying outsuch steps.

Further, in the foregoing specification, embodiments of the inventionhave been described with reference to numerous specific details that mayvary from implementation to implementation. Thus, the sole and exclusiveindicator of what is the invention, and is intended by the applicants tobe the invention, is the set of claims that issue from this application,in the specific form in which such claims issue, including anysubsequent correction. Any definitions expressly set forth herein forterms contained in such claims shall govern the meaning of such terms asused in the claims. Hence, no limitation, element, property, feature,advantage or attribute that is not expressly recited in a claim shouldlimit the scope of such claim in any way. The specification and drawingsare, accordingly, to be regarded in an illustrative rather than arestrictive sense.

1. A method for selecting a point or range, the method comprising:displaying a slider widget that includes a thumb, a first edge elementand a second edge element; wherein the thumb, the first edge element andthe second edge element are positioned along a track that corresponds toa first range, the first edge element being positioned along the trackat a distance along the track from the thumb, the second edge elementbeing positioned along the track at a distance along the track from thethumb; wherein the position of the first edge element and the positionof the second edge element define a sub-range of said first range;receiving first user input that moves the thumb along the track; inresponse to the first user input that moves the thumb along the track,automatically moving the first edge element and the second edge elementalong the track in a manner that maintains (a) the distance between thefirst edge and the thumb and (b) the distance between the second edgeand the thumb, and changing the position of the sub-range defined by thefirst and second edge elements without changing the length of thesub-range; receiving second user input that moves one of the first orsecond edge elements along the track while keeping the other edgeelement stationary; and in response to the second user input, changingthe distance between the thumb and the edge element being moved withoutchanging a size of the thumb; wherein the method is performed by acomputing device.
 2. The method of claim 1 wherein the first edgeelement and the second edge element are displayed on opposite sides ofsaid thumb.
 3. The method of claim 1 wherein, prior to receiving thefirst user input, the thumb is positioned at an arbitrary point withinthe sub-range defined by the positions of first and second edgeelements.
 4. The method of claim 1, further comprising: receiving thirduser input that operates to move the sub-range defined by the positionsof the first and second edge elements to another location on said firstrange.
 5. The method of claim 1, further comprising: receiving thirduser input directed to said slider widget that selects the endpoints ofa second range, wherein said second range comprises a subset of saidfirst range.
 6. The method of claim 5, wherein the slider widgetcomprises an additional set of edge elements operational to define saidendpoints of said second range.
 7. The method of claim 6, wherein one ofsaid additional set of edge elements defines a starting point of saidsecond range and another one of said additional set of edge elementsdefines a finishing point of said second range.
 8. The method of claim6, wherein said third user input is directed to one of said additionalset of edge elements.
 9. The method of claim 6, further comprising:directing said third user input to a first additional edge element ofsaid additional set of edge elements; moving said first additional edgeelement along a path, wherein said path represents said first range;placing said first additional edge element along said path to define afirst endpoint of said endpoints of said second range; and causing asecond additional edge element of said additional set of edge elementsto define a second endpoint of said endpoints of said second range afterplacing said first additional edge element along said path, wherein saidfirst and second additional edge elements fully define said secondrange.
 10. The method of claim 9, wherein said second endpoint liesalong the opposite side of said path as said first endpoint and saidendpoints are equidistant from said thumb.
 11. The method of claim 6,further comprising: directing said third user input to one of saidadditional set of edge elements; moving a first additional edge elementof said additional set of edge elements along a path, wherein said pathrepresents said first range; during said moving of said first additionaledge element, causing a second additional edge element of saidadditional set of edge elements positioned adjacent to the side of saidthumb opposite said first additional edge element to move in concertwith said first additional edge element, said movement of said secondadditional edge element being of the same magnitude and in the oppositedirection along said path as the movement of said first additional edgeelement; and placing said first and second additional edge elementsalong said path to define both of said endpoints of said second range.12. The method of claim 5, wherein said second range is collapsed inresponse to receiving user input.
 13. The method of claim 1, furthercomprising providing feedback to a user to assist in positioning saidslider widget.
 14. The method of claim 13, wherein said feedbackcomprises tooltips.
 15. The method of claim 1, further comprising: whilemoving one of the first and second edge elements, maintaining equaldistance between the thumb and the first and second edge elements. 16.The method of claim 1, further comprising: while moving one of the firstand second edge elements, maintaining the thumb in a stationary positionuntil the user releases a key.
 17. The method of claim 1, wherein theslider widget operates within a scrollbar of a windowed user environmentin which a particular window contains multiple objects, the methodfurther comprising: using the first and second edge elements, setting arange of objects within the window to be viewed; and using the thumb,selecting a specific one of the objects.
 18. A non-transitorycomputer-readable medium storing computer-executable instructions for:displaying a slider widget that includes a thumb, a first edge elementand a second edge element; wherein the thumb, the first edge element andthe second edge element are positioned along a track that corresponds toa first range, the first edge element being positioned along the trackat a distance along the track from the thumb, the second edge elementbeing positioned along the track at a distance along the track from thethumb; wherein the position of the first edge element and the positionof the second edge element define a sub-range of said first range;receiving first user input that moves the thumb along the track; inresponse to the first user input that moves the thumb along the track,automatically moving the first edge element and the second edge elementalong the track in a manner that maintains (a) the distance between thefirst edge and the thumb and (b) the distance between the second edgeand the thumb, and changing the position of the sub-range defined by thefirst and second edge elements without changing the length of thesub-range; receiving second user input that moves one of the first orsecond edge elements along the track while keeping the other edgeelement stationary; and in response to the second user input, changingthe distance between the thumb and the edge element being moved withoutchanging a size of the thumb.
 19. The non-transitory computer-readablemedium of claim 18 wherein the first edge element and the second edgeelement are displayed on opposite sides of said thumb.
 20. Thenon-transitory computer-readable medium of claim 18 wherein, prior toreceiving the first user input, the thumb is positioned at an arbitrarypoint within the sub-range defined by the positions of first and secondedge elements.
 21. The non-transitory computer-readable medium of claim18, further comprising instructions for: receiving third user input thatoperates to move the sub-range defined by the positions of the first andsecond edge elements to another location on said first range.
 22. Thenon-transitory computer-readable medium of claim 18, further comprisinginstructions for: receiving third user input directed to said sliderwidget that selects the endpoints of a second range, wherein said secondrange comprises a subset of said first range.
 23. The non-transitorycomputer-readable medium of claim 22, wherein the slider widgetcomprises an additional set of edge elements operational to define saidendpoints of said second range.
 24. The non-transitory computer-readablemedium of claim 23, wherein one of said additional set of edge elementsdefines a starting point of said second range and another one of saidadditional set of edge elements defines a finishing point of said secondrange.
 25. The non-transitory computer-readable medium of claim 23,wherein said third user input is directed to one of said additional setof edge elements.
 26. The non-transitory computer-readable medium ofclaim 23, further comprising instructions for: directing said third userinput to a first additional edge element of said additional set of edgeelements; moving said first additional edge element along a path,wherein said path represents said first range; placing said firstadditional edge element along said path to define a first endpoint ofsaid endpoints of said second range; and causing a second additionaledge element of said additional set of edge elements to define a secondendpoint of said endpoints of said second range after placing said firstadditional edge element along said path, wherein said first and secondadditional edge elements fully define said second range.
 27. Thenon-transitory computer-readable medium of claim 26, wherein said secondendpoint lies along the opposite side of said path as said firstendpoint and said endpoints are equidistant from said thumb.
 28. Thenon-transitory computer-readable medium of claim 23, further comprisinginstructions for: directing said third user input to one of saidadditional set of edge elements; moving a first additional edge elementof said additional set of edge elements along a path, wherein said pathrepresents said first range; during said moving of said first additionaledge element, causing a second additional edge element of saidadditional set of edge elements positioned adjacent to the side of saidthumb opposite said first additional edge element to move in concertwith said first additional edge element, said movement of said secondadditional edge element being of the same magnitude and in the oppositedirection along said path as the movement of said first additional edgeelement; and placing said first and second additional edge elementsalong said path to define both of said endpoints of said second range.29. The non-transitory computer-readable medium of claim 22, whereinsaid second range is collapsed in response to receiving user input. 30.The non-transitory computer-readable medium of claim 18, furthercomprising instructions for providing feedback to a user to assist inpositioning said slider widget.
 31. The non-transitory computer-readablemedium of claim 13, wherein said feedback comprises tooltips.
 32. Thenon-transitory computer-readable medium of claim 18, further comprising:while moving one of the first and second edge elements, maintainingequal distance between the thumb and the first and second edge elements.33. The non-transitory computer-readable medium of claim 18, furthercomprising instructions for: while moving one of the first and secondedge elements, maintaining the thumb in a stationary position until theuser releases a key.
 34. The non-transitory computer-readable medium ofclaim 18, wherein the slider widget operates within a scrollbar of awindowed user environment in which a particular window contains multipleobjects, the computer-readable storage medium further comprisinginstructions for: using the first and second edge elements, setting arange of objects within the window to be viewed; and using the thumb,selecting a specific one of the objects.